
#ifndef NODE_H
#define NODE_H

#include "chessmind2.h"

// 判断树的节点。
// 保存可能的落子的权重值。
class Node
{
protected:
    Node();             // 为了让子类更方便地构造。
    
public:
    int m, n;
    float weight;       //节点的权值
    int nlevel;         //节点所在树层数
    Node *pnode;        //父节点指针
    Vector2 grid;       //存储当前（将本节点当成已经落下的棋子）棋局
    char myColor;       //存储当前子节点的节点棋子颜色，据此可以自动生成子节点的颜色。
    int bestm, bestn;   //权值最大点的位置

public:
    Node(int x, int y, Node* parent);   //节点类构造函数，构造中自动生成子节点，子节点数自动计算
    virtual void initial();             //初始化相关的数据
    virtual void checkSubNode();        //增加子节点，并检查之
    virtual void calculateWeight();     //计算当前点的权重
};

#endif

